草庐IT

C++ 唯一指针 : memory leak

全部标签

c# - 如何用字符串中的唯一名称替换完整路径名?

我正在使用c#并希望将具有位置全名的数据的字符串名称放入例如我在字符串中有这个名字:D:\Users\admin\Documents\file.txt,并且只想在字符串中包含file.txt怎么做? 最佳答案 您可以使用方法GetFileName的Path类:Stringpath="D:\Users\admin\Documents\file.txt";stringname=System.IO.Path.GetFileName(path); 关于c#-如何用字符串中的唯一名称替换完整路径名

c++ - 来自系统存储的证书上下文始终具有无效的 pbCertEncoded 指针

我正在尝试在CryptoAPI中使用CertEnumCertificatesInStore()来遍历所有根证书并将它们编码为PEM文件以用于OpenSSL。我已经找到了几个这样的例子,所以它似乎是可能的,但是,我为每个证书返回的PCCERT_CONTEXT都有一个无效的pbCertEncoded指针和cbCertEncoded(缓冲区大小)始终为0,但我觉得这不应该是作为示例的案例使用编码缓冲区将证书转换为其他格式。有没有其他人遇到过这个获取空缓冲区的问题或者可以看到我遗漏的步骤?我已经验证我实际上正在使用CryptUIDlgViewContext()函数获取证书。我觉得我缺少一些非常

windows - 具有唯一 ID 的 SetTimer

我想为一个窗口设置一个定时器,但我不知道那个窗口是否已经有定时器在运行。如果是这样,我不想覆盖其中任何一个,所以我需要选择一个免费的计时器ID。MSDN对我的情况没有帮助,他们描述了几乎所有的排列,除非你有一个hwnd并且不想更换计时器。因此,如果可以将0或其他内容作为nIDEvent并让Windows自动创建一个新的uniqeid,或者是否有某种方法可以列出当前正在运行的计时器以便我可以避免使用其中的任何一个?SetTimer的MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644906%28v=vs.85

c# - 使用回调检查鼠标指针状态

我需要一个可靠的方法来检查鼠标指针状态,并计算它改变了多少次,例如从“正常”指针到沙漏/圆圈,反之亦然。它是测量响应时间的性能测试的一部分,确定某个业务流程是否完成的唯一方法是观察鼠标指针,并计算它从“正常”到“繁忙”的次数以及再次回来。一旦完成两次,该过程就完成了。我知道-这很糟糕,而且是一种垃圾解决方法,但这是我唯一可以使用的东西。我已经实现了一些可行的方法,但它有一个关键的弱点:如果鼠标指针在线程进入休眠状态时发生变化,那么我将“错过”这一变化,从而错过退出条件。我会将等待时间减少到5或10毫秒,但这仍然不是一个好的解决方案。这是我的代码,让您了解发生了什么:TimeSpanti

代码在 Windows 中有效,但在 Linux 中无效!为什么? 【简单的指针问题】

这是运输问题的工作代码片段(删除了实际功能。这里只有输入和输出功能。顺便说一句,这是不正确的)#include#includetypedefstructtransport{intcost;intalloc;}TRAN;voidproblem_input(TRAN**,int*,int*,int,int);voidproblem_display(TRAN**,int*,int*,int,int);intmain(){intn_dest;intn_org;inti;intj;printf("\n\n\tEnterNumberOfDestinations:");scanf("%d",&n_d

windows - 为什么系统在使用指针 Windows 时分配更多内存?

我使用HeapAlloc分配大量内存,例如400MB,但是当我检查程序的内存使用情况时,它实际上使用了1GB。//configuraciones.h#defineANCHO_MUNDO5000#defineALTO_MUNDO5000//unidades.cppunidad*unidades_memoria=(unidad*)HeapAlloc(heap,//UserHeapNULL,ANCHO_MUNDO*ALTO_MUNDO*sizeofunidad);unidad***unidades=newunidad**[ANCHO_MUNDO];//DefaultHeapfor(inti=

c++ - 如何将 IStream 实例中的数据读入 char 指针?

我试图从我的IStream实例中复制一些二进制数据(因为Gdiplus::Image只保存到IStream派生对象或文件路径)到一个字符指针,我可以通过知道分配的二进制文件从中简单地读取大小并可以访问指针。我的类如下:Upload::Upload(Gdiplus::Bitmap*bitmap,CLSIDclsEncoderId){intresult;STATSTGstatResult;result=CreateStreamOnHGlobal(0,TRUE,&m_hBufferStream);if(result!=S_OK)MessageBoxW(NULL,_T("Upload::Upl

windows - 每台设备的即插即用 ID (PNPID) 是否唯一?

我使用Windows并希望为通过USB连接的外部硬盘找到一个唯一ID我发现那是PnpID=0010101D400000000这是独特的吗?如果我将其连接到其他Windows和PC,那不会改变吗?而任何其他HDD不能有此PnpID?谢谢 最佳答案 PNPID是唯一的,因为它是VendorId和deviceID的组合。每个设备都有自己唯一的PNPID。 关于windows-每台设备的即插即用ID(PNPID)是否唯一?,我们在StackOverflow上找到一个类似的问题:

c++ - 如果 EBP 帧指针为 NULL,堆栈是否已损坏?

我对堆栈跟踪的理解基本上是基于Whatisexactlythebasepointerandstackpointer?Towhatdotheypoint?.多年来我一直在帮助开发的一个程序在崩溃时会吐出一个堆栈转储,我已经习惯于根据C++编译器生成的.map文件来评估这些堆栈跟踪。很多次,我都成功地遍历了堆栈并调试了问题。但是,有时堆栈跟踪有一个NULLEBP(帧)指针。以下是此类示例堆栈转储中的相关片段:InitialEBPpointervalue:04d8fab0{ataddress04d8fab0:00000000}可以看到,EBP帧指针的值为NULL。因此,我不能走堆栈。这是堆栈

windows - 为 Windows 8 获取稳定的唯一设备 ID

所以有各种各样的帖子,比如thisone关于获取Windows8设备的唯一标识符。然而,也认识到当各种系统组件改变时标识符改变。来自thedocs:HardwaredriftisthereasonwhytheappshouldnotconsumetheASHWIDbytestreamasis.Ifafewhardwarecomponentschangeorareswitchedoff,theAPIreturnsadifferentASHWID.Theapprisksthepossibilityofincorrectlyidentifyingthesamedeviceasanewdevi